package com.example.homework.homework01;

import java.util.ArrayList;
import java.util.List;

public class Test {
    public static void main(String[] args) {
        // 需求
        // 有四名学生参加注册会计师考试,表格中记录的是4名学生的考试成绩,请按照成绩将四名学生从小到大进行排名,并将结果展示出来.
        List<Student> list = new ArrayList<>();
        list.add(new Student("张三", 80));
        list.add(new Student("赵六", 60));
        list.add(new Student("李四", 90));
        list.add(new Student("王五", 70));

        // 使用Collections.sort()方法 通过实现Comparator接口的compare方法来指定排序规则
//        Collections.sort(list, new Comparator<Student>() {
//            @Override
//            public int compare(Student o1, Student o2) {
//                return Double.compare(o1.getScore(), o2.getScore());
//            }
//        });

        // 使用Lambda表达式简化
        // Collections.sort(list, ((o1, o2) -> Double.compare(o1.getScore(), o2.getScore())));

        // 使用Stream流完成
        // 对于自定义对象来说，排序需要指定排序规则，否则不知道使用哪一个字段进行排序
        list.stream().sorted((o1, o2) -> Double.compare(o1.getScore(), o2.getScore())).forEach(System.out::println);

        System.out.println(list);
    }
}
